home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
081-090
/
amok90
/
filedate
/
filedate.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
3KB
|
85 lines
(*------------------------------------------
:Program. FileDate
:Author. Albert Weinert [awn]
:Address. Krähenweg 21, D-5000 Köln 30
:Version. V1.0
:Date. 28-Mar-1993
:Copyright. Albert Weinert 1993
:Language. Oberon-2
:Translator. Amiga Oberon 3.00d
:Contents. Vergleicht die Erstellungs Daten zweier Dateien
:Imports. <Importiertes, Name/ShortCut des Autors>
:Remarks. Wenn das File FILE neuer wie das File CHECK dann wird RC=0
:Remarks. zurückgegeben. Wenn das File CHECK nicht vorhanden ist dann wird
:Remarks. auch RC=0 zurückgegeben. Wenn allerdings das File FILE nicht
:Remarks. vorhanden ist, dann wird RC=20 zurückgeben. Wenn das File FILE
:Remarks. älter wie das File CHECK ist dann wird RC=5 zurückgegeben.
:Bugs. <Bekannte Fehler>
:Usage. FileDate FILE/A,CHECK/A
:History. V0.0 [awn] 28-Mar-1993 : Erstellt
:History. V1.0 [awn] 28-Mar-1993 : Funktioniert
--------------------------------------------*)
MODULE FileDate;
(* $OddChk- *)
IMPORT FileDateVersion,
Exec,
Dos;
VAR file : Dos.FileInfoBlockPtr;
date1,date2: Dos.Date;
RDArgs : Dos.RDArgsPtr;
args : ARRAY 2 OF Exec.STRPTR;
lock : Dos.FileLockPtr;
time1,time2: LONGINT;
PROCEDURE DateToInt(date:Dos.Date; VAR time:LONGINT);
BEGIN
time:=date.tick DIV Dos.ticksPerSecond;
INC(time,date.minute * 60);
INC(time,date.days * 24 * 60 * 60);
END DateToInt;
BEGIN
RDArgs:=Dos.ReadArgs("FILE/A,CHECK/A",args,NIL);
IF RDArgs # NIL THEN
file:=Dos.AllocDosObjectTags(Dos.fib,NIL);
IF file # NIL THEN
lock:=Dos.Lock(args[0]^,Dos.accessRead);
IF lock # NIL THEN
IF Dos.Examine(lock,file^) THEN
date1:=file.date;
Dos.UnLock(lock);
lock:=Dos.Lock(args[1]^,Dos.accessRead);
IF lock # NIL THEN
IF Dos.Examine(lock,file^) THEN
date2:=file.date;
Dos.UnLock(lock);
lock:=NIL;
DateToInt(date1,time1);
DateToInt(date2,time2);
IF time1 < time2 THEN
HALT(5);
END;
ELSE
HALT(0);
END;
ELSE
Dos.PrintF("Neuer\n");
HALT(0);
END;
ELSE
HALT(20);
END;
ELSE
HALT(20);
END;
END (* IF file # NIL THEN *);
END (* IF RDArgs # NIL THEN *);
CLOSE
IF lock # NIL THEN Dos.UnLock(lock) END;
IF file # NIL THEN Dos.FreeDosObject(Dos.fib,file) END;
IF RDArgs # NIL THEN Dos.FreeArgs(RDArgs) END;
END FileDate.